<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数</title>
</head>

<body>
    <script>

        //---------------------------形参实参------------------------------
        // function my_fun(name) {
        //     console.log("小黑子", name);
        //     console.log("理塘小马丁真");
        // }

        // my_fun("蔡徐坤")
        // my_fun()        //  不写  则值是 未定义




        //---------------------------结果输出------------------------------
        // function max_value(a, b) {
        //     return a > b ? a : b
        // }

        // max_value(999, 100)      //  无结果输出

        // let r = max_value(999, 100)
        // console.log(r);      //  手动打印





        // //---------------------------参数------------------------------

        // //默认参数
        // function max_value(a, b=100) {
        //     return a > b ? a : b
        // }
        // let r = max_value(10)
        // console.log(r);     //  100

        // let r = max_value(5, 10)     //  重新赋值默认参数b
        // console.log(r);     //   10




        // // 取剩余参数
        // function total(a, b, c, ...params) {
        //     console.log(a, b, c);       //  1  2  3
        //     console.log(params);        //  [4, 5, 6, 7, 8]
        //     console.log(typeof(params));    //  object
        // }
        // total(1,2,3,4,5,6,7,8)



        // // 对象参数
        // function my_object(v, { a, b, c }) {
        //     console.log(v, a, b, c)
        // }
        // my_object(1, { "a": 10, c: 100 })    //   1  10  undefined  100




        // // --------------------------------------匿名函数--------------------------------------
        // // 普通写法
        // // 将匿名函数赋值给变量
        // let f = function () {
        //     console.log("匿名函数");
        // }
        // f()



        // //  直接执行写法
        // //   (匿名函数)()        直接执行
        // (function(){console.log("直接执行了匿名函数，只能执行1次");})()




        // //   将匿名函数作为实参传入形参
        // function test(msg, n, f) {
        //     console.log(this);
        //     for (let i = 0; i < n; i++) {
        //         console.log(msg);
        //     }
        //     f()
        // }
        // test("妈妈生的", 10, (function () { console.log("小黑子"); }))





        // // --------------------------------------箭头函数--------------------------------------
        // // 将箭头函数赋值给变量
        // let arror = ()=>{
        //     console.log("箭头函数");
        // }
        // arror()


        // let a2 = (a, b) => {
        //     return a + b
        // }
        // console.log(a2(5, 10));



        // // 将箭头函数作为实参传入形参
        // function test(msg, n, f) {
        //     console.log(this);
        //     for (let i = 0; i < n; i++) {
        //         console.log(msg);
        //     }
        //     f()
        // }
        // test("妈妈生的", 10, () => { console.log("将箭头函数作为实参传入"); })




        

        // // --------------------------------------定时执行--------------------------------------
        // // setTimeout(执行函数的函数名，时间(毫秒)，传入参数)       定时执行1次
        // // setInterval(执行函数的函数名，时间(毫秒)，传入参数)      定时一直执行 

        // setTimeout(function(){console.log("定时执行1次");}, 1000)
        // setInterval(function(){console.log("定时一直执行");}, 1000)




        





    </script>

</body>

</html>